package com.ruoyi.standingbook.sorting.mapper;

import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.common.domain.vo.StatisticsSortingVo;
import com.ruoyi.standingbook.lamp.domain.bo.LampFinishedSumBo;
import com.ruoyi.standingbook.lamp.domain.bo.LampPicBo;
import com.ruoyi.standingbook.sorting.domain.Sorting;
import com.ruoyi.standingbook.sorting.domain.bo.SortingBo;
import com.ruoyi.standingbook.sorting.domain.bo.SortingPicBo;
import com.ruoyi.standingbook.sorting.domain.vo.SortingFinishedSumVo;
import com.ruoyi.standingbook.sorting.domain.vo.SortingVo;
import com.ruoyi.standingbook.toilet.domain.bo.ToiletBo;
import com.ruoyi.standingbook.toilet.domain.vo.ToiletVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 垃圾分类督导Mapper接口
 *
 * @author cc
 * @date 2023-05-01
 */
public interface SortingMapper extends BaseMapperPlus<SortingMapper, Sorting, SortingVo> {

    /**
     * 统计社区列表
     */
    List<StatisticsSortingVo> statisticsCommunityList();

    /**
     * 统计社区督导收集点数量
     */
    List<StatisticsSortingVo> statisticsCollectionNumList(SortingBo bo);

    /**
     * 统计社区督导投放点数量
     */
    List<StatisticsSortingVo> statisticsDeliveryNumList(SortingBo bo);

    /**
     * 统计今天督导时长分组列表
     */
    List<StatisticsSortingVo> statisticsTodayDurationList();

    /**
     * 统计本月督导时长分组列表
     */
    List<StatisticsSortingVo> statisticsMonthDurationList(SortingBo bo);

    /**
     * 统计今天完成督导的数量
     */
    List<StatisticsSortingVo> statisticsTodayCompletionList(SortingBo bo);


    /**
     * 统计今天未完成督导的数量
     */
    List<StatisticsSortingVo> statisticsTodayNotCompletionList(SortingBo bo);

    /**
     * 统计本月完成督导的数量
     */
    List<StatisticsSortingVo> statisticsMonthCompletionList(SortingBo bo);


    /**
     * 统计本月未完成督导的数量
     */
    List<StatisticsSortingVo> statisticsMonthNotCompletionList(SortingBo bo);

    /**
     * 垃圾分类督导列表查询
     */
    List<SortingVo> sortingList(SortingBo bo);


    List<SortingPicBo> selectPicByDate(@Param("date") String date);

    /**
     * 统计
     * @param date
     * @param community
     * @return
     */
    Integer selectSumByDate(@Param("date") String date,@Param("community") String community);
}
